The Shape Sifter is alive!
For the first time ever, all of the components are functioning togther, and the machine now actually works! In the videos below, you can see the it in action:
You may notice that it has two limitations currently.
First, the conveyor belt is too wide so parts don't always fall off of it. Also, if the conveyor were longer I'd be able to support up to 8 bins on either side of the belt, 16 total.
Second, the neural network doesn't have nearly enough images to train on. As such, it's accuracy isn't very good (80%-ish). However, each picture taken while the machine is running is saved. After a session, we can add the images, and re-train the network. As time goes on it will become more accurate.
Also we have a jazzy new vibrating parts feeder. We haven't written a blog post about it yet, but I'll get one up within the next week. For now, just know that the cacophonous racket is coming from it, and you'll see it up close later.
Now that we've hit this milestone, I have released the source code on github. You're free to poke around if you wish. If you have questions, please send them our way: mt_pages@outlook.com.
Job ads in browser are closer than they appear
Now that the machine works, I'm going to begin searching for a job as a programmer. The prospect is as scary as it is exciting. I've been studying full time, at home, for just over five months now and I've learned a lot.
I took a free online course offered by Harvard University called CS50, and I would recommend it to anyone who's ever been curious about programming. It's a phenomenal primer for the programmatically uninitiated.
I also read Programming Principles and Practice Using C++, Second Edition. It was written by the man himself, Bjarne Stroustrup, the inventor of the C++ language. The textbook dives deep into the philosophy of programming and I've found it's lessons to be useful in any language, and indeed beyond the scope programming.
Principles and Practice is a well written exercise in practical problem solving that teaches you how to divide up responsibility, compartmentalize tasks, and realize a complete system. This is simultaneous with a rigorous lesson on the intricacies of the C++ language. I highly recommend it. With all of this study and practice under my belt, I'm now assembling a CV and searching for jobs.
With a bit of luck, I'll land some interviews.
With a bit of charm and skill, I'll land a job.
Work in progress
Does this mean I'm done with the sorting machine? Of course not. Jamie and I have plans, you see. The vibration feeder needs some serious improvements, and once I have a steady income again, I would like a longer and narrower belt. If I could get all 16 bins running simultaneously I'd be very happy.
However, the original goal was "Make the machine work with a basic classification system." We have achieved that goal, and I am elated.
We'll keep training the neural network, but we need the machine to run in it's current state for a while to gather more pictures of parts. From here on out, it's a hobby project, rather than my primary avenue of study and practice. Although I will probably keep tinkering with it, and I will continue to learn as much as I can.